$(function(){
    var re;//结果
    //限制输入为数值
    $("input").keyup(function(e){
        if(/[^\d.-e]/g.test($(this).val())){
            //替换非数字和.
            var string=$(this).val().replace(/[^\d.-]/g,'');
            $(this).val(string);
        }
    });
    //按钮点击
    $("button").click(function(){
        //获取第一个值
        var value1=$("#1st").val();
        //获取第二个值
        var value2=$("#2nd").val();

        //更改result的值
        if($(this).attr("id")=="square"){//x的y次方
            re=Math.pow(value1,value2);
        }else if($(this).attr("id")=="root"){//x的y次根
            re=Math.pow(value1,1/value2);
        }else if($(this).attr("id")=="mod"){ //取余
            re=value1%value2;
        }else if($(this).attr("id")=="log"){
            re=Math.log(value2)/Math.log(value1);
        }else if($(this).attr("id")=="factorial"){
            if(value1<0||Math.floor(value1)!=value1)
                re="输入只能为正整数";
            else
                re=factorial(value1,1);
        }else if($(this).attr("id")=="cos"){
            re=Math.cos(value1);
        }else if($(this).attr("id")=="sin"){
            re=Math.sin(value1);
        }else if($(this).attr("id")=="tan"){
            re=Math.sin(value1)/Math.cos(value1);
        }else if($(this).attr("id")=="cot"){
            re=Math.cos(value1)/Math.sin(value1);
        }else if($(this).attr("id")=="reciprocal"){
            re=1/value1;
        }else if($(this).attr("id")=="loge"){
            re=Math.log(value1);
        }else if($(this).attr("id")=="ex"){
            re=Math.exp(value1);
        }else if($(this).attr("id")=="pi"){
            value1=Math.PI;
            $("#1st").val(Math.PI);
        }else if($(this).attr("id")=="equal"){                      //等于
            //更改结果的值
            $("#result").val(re);
        }else if($(this).attr("id")=="C"){
            //清空输入框里的值
            $("#1st").val("");
            $("#2nd").val("");
            $("#result").val("");
            value1="";
            value2="";
            re="";
        }else if($(this).attr("id")=="gcd"){                        //最大公约数
            if(Math.floor(value1)!=value1||Math.floor(value2)!=value2||value1<0||value2<0){
                re="请输入正整数";
            }
            else{
                re=gcd(value1,value2);
            }
        }else if($(this).attr("id")=="lcm"){                        //最小公倍数
            if(Math.floor(value1)!=value1||Math.floor(value2)!=value2||value1<0||value2<0){
                re="请输入正整数";
            }
            else{
                re=lcm(value1,value2);
            }
        }else if($(this).attr("id")=="ans"){                         //ans
            //把结果赋给第一个框
            value1=re;
            $("#1st").val(re);
            //清除第二个框和结果
            $("#2nd").val("");
            value2="";
            $("#result").val("");
            re="";
        }
        //加减乘除
        else{             
            re=eval(value1+$(this).text()+value2);
        }
    });
});
//阶乘
function factorial(n,a){
if(n==1||n==0)
    return a;
else
return factorial(n-1,n*a);
}
//最大公约数
function gcd(a,b){
    var temp;
    if(a<b){
        temp=a;
        a=b;
        b=temp;
    }
    if(b==0){
        return a;
    }
    return gcd(b,a%b);
}

//最小公倍数
function lcm(a,b){
    return a*b/gcd(a,b);
}